////
////  Interactive+H5.swift
////  TodayNews
////
////  Created by ZhangBo on 2019/6/17.
////  Copyright © 2019 ZhangBo. All rights reserved.
////
//
//import UIKit
//import WebKit
//import Kingfisher
//import WebViewJavascriptBridge
//
//// MARK: - ********* H5 -> APP
//extension InteractiveWebVC {
//    /// called when webview initialized
//    func p_setJSInteractive() {
//        bridge = WKWebViewJavascriptBridge.init(for: webView)
//        bridge.setWebViewDelegate(self)
//        // MARK: === 改变导航栏的title
//        bridge.registerHandler("appChangeNavTitle") { [weak self](data, responsecallback) in
//            guard
//                let d = data as? [String: String],
//                let title = d["title"]
//                else {
//                return
//            }
//            self?.navigationItem.title = title
//        }
//        // MARK: === 关闭当前页面
//        bridge.registerHandler("appCloseWebView") { [weak self](data, responsecallback) in
//            self?.ly.close()
//        }
//        // MARK: === 获取用户的token
//        bridge.registerHandler("appToLogin") { [weak self](data, responsecallback) in
//            self?.p_setLoginToken()
//        }
//        // MARK: === 分享
//        bridge.registerHandler("appToShare") { [weak self](data, responsecallback) in
//            guard
//                let d = data as? [String: String]
//                else {
//                return
//            }
//            self?.p_dealWithShare(data: d)
//        }
//        // MARK: === 打开产品详情页
//        bridge.registerHandler("appOpenProduct") { [weak self](data, responsecallback) in
//            guard
//                let d = data as? [String: String]
//                else {
//                return
//            }
//            self?.p_openProductDetail(data: d)
//            self?.p_checkGlobalJSParam(d)
//        }
//        // MARK: === 打开tag列表页
//        bridge.registerHandler("appOpenTagList") { [weak self](data, responsecallback) in
//            guard
//                let d = data as? [String: String]
//                else {
//                return
//            }
//            self?.p_openTagListView(data: d)
//            self?.p_checkGlobalJSParam(d)
//        }
//        // MARK: === 打开APP首页
//        bridge.registerHandler("appOpenHomePage") { (data, responsecallback) in
//            UniversalRouterType.appHome.action()
//        }
//        // MARK: === 打开APP 一元夺宝商品列表
//        bridge.registerHandler("appOpenYiYuanList") { [weak self](data, responsecallback) in
//            UniversalRouterType.yiyuanProductList.action()
//            self?.p_checkGlobalJSParam(data)
//        }
//        // MARK: === 打开供稿人页面
//        bridge.registerHandler("appOpenVenderView") { [weak self](data, responsecallback) in
//            guard
//                let d = data as? [String: String],
//                let venderID = d["vender_id"]
//                else {
//                return
//            }
//            UniversalRouterType.vender((venderID, "")).action()
//            self?.p_checkGlobalJSParam(d)
//        }
//        // MARK: === 打开APP 用户的店铺页面
//        bridge.registerHandler("appOpenUserShopView") { [weak self](data, responsecallback) in
//            guard
//                let d = data as? [String: String],
//                let shopID = d["shop_id"]
//                else {
//                return
//            }
//            UniversalRouterType.shop((shopID, "")).action()
//            self?.p_checkGlobalJSParam(d)
//        }
//        // MARK: ===  通知APP H5登录成功
//        bridge.registerHandler("appNotiSuccessLogin") { [weak self](data, responsecallback) in
//            guard
//                let d = data as? [String: String]
//                else {
//                return
//            }
//            self?.p_h5LoginSuccess(data: d)
//        }
//
//        // MARK: ===  立即赚钱点击后调到邀请页面
//        bridge.registerHandler("toMakeMoney") { (data, responsecallback) in
//            guard let d = data as? [String: String] else {
//                return
//            }
//            print(d)
//
//            guard RRLocalMng.checkLogin == true else {
//                return
//            }
//            Router<R_NewProfile>.open(.invite)
//        }
//        
//        // MARK: ===  思维导图跳转文章详情
//        bridge.registerHandler("appLearnAtOnce") { (data, responsecallback) in
//
//            guard
//                let d = data as? [String: Any]
//                //  let productID = d["id"],
//                //  let category = d["category"]
//                else {
//                    return
//            }
//            
//            
//            
//            let info = RRProDetailInfo()
//            //info.category = d["category"] as! String
//            info.category = "9997"
//            if let productID = d["id"] as? Int {
//                info.product_id = String(productID)
//            }else{
//                return
//            }
//            Router<R_Product>.open(.productDetail(info))
//
//        }
//        // MARK: ===  思维导图跳转分类
//        bridge.registerHandler("appLearnClass") { [weak self](data, responsecallback) in
//            guard
//                let d = data as? [String: Any]
//                else {
//                    return
//            }
//            
//            let model = HomeNewSectionModel()
//            if let title = d["title"] as? String {
//               model.title = title
//            }
//            if let format = d["format"] as? Int {
//                model.format = format
//            }
//            if let tab_category = d["tab_category"] as? Int {
//                model.type = String(tab_category)
//            }
//
//            LYHud.showLoading()
//            self?.newApp.request(.aggregateCategory(model.type),success: { (response) in
//                //guard let `self` = self else { return }
//                LYHud.hideLoading()
//                guard let data = response["data"].arrayObject as? [[String: Any]] else {
//                    return
//                }
//                let models = RRLHomeSectionListItemModel.ly.objArray(with: data)
//
//                if models.count <= 1 {// 有没有分类
//                    Router<R_Home>.open(.newSectionList(model))
//                } else  {
//                    Router<R_Home>.open(.rrlHomeSectionList(model))
//                }
//                
////                if models.count > 0{
////                    Router<R_Home>.open(.rrlHomeSectionList(model))
////                }else{
////                    Router<R_Home>.open(.newSectionList(model))
////                }
//                
//                
//            }) { (error) in
//                LYHud.hideLoading()
//            }
//            
//            
//        }
//    }
//}
//
//// MARK: - ********* APP -> H5
//extension InteractiveWebVC {
//    // MARK: === 传递用户登录的token
//    func p_setLoginToken() {
//        if !RRLocalMng.checkLogin {
//            RRUserDefaults.activitySource = webParam.source
//            isNeedCallUserToken = true
//            return
//        }
//        isNeedCallUserToken = false
//        let data = ["appToken": RRUserDefaults.token,
//                    "appUserid": RRUserDefaults.user_id,
//                    "appWechatimage": RRUserDefaults.wechatimage,
//                    "appUserimage": RRUserDefaults.userimage]
//        bridge.callHandler("jsGetLoginToken", data: data) { _ in
//        }
//    }
//
//    // MARK: === 分享成功的回调
//    private func p_setShareResult(str: String?) {
//        guard let msg = str else {
//            return
//        }
//        var code = "1"
//        if msg == "分享成功" {
//            code = "0"
//        }
//        let data = ["code": code,
//                    "msg": msg]
//        bridge.callHandler("jsGetShareResult", data: data) { _ in
//        }
//    }
//}
//
//// MARK: - ********* UIResponse Funcs
//extension InteractiveWebVC {
//    // MARK: === 点击左上角 返回
//    override func p_actionLeft() {
//        if webView.canGoBack {
//            webView.goBack()
//        } else {
//            self.ly.close()
//        }
//    }
//}
//
//// MARK: - ********* Private method
//extension InteractiveWebVC {
//    private func p_dealWithShare(data: [String: String]) {
//        guard
//            let shareTitle = data["shareTitle"],
//            let shareDesc = data["shareDesc"],
//            let shareUrl = data["shareUrl"],
//            let shareImage = data["shareImage"],
//            let shareType = data["shareType"]
//            else {
//            return
//        }
//        let platform = p_getSharePlatform(byType: shareType)
//        guard let imgUrl = URL(string: shareImage) else {
//            return
//        }
//        LYHud.showLoading()
//        KingfisherManager.shared.retrieveImage(with: imgUrl, options: nil, progressBlock: nil) { [weak self](response) in
//            LYHud.hideLoading()
//            guard let `self` = self else {
//                return
//            }
//            switch response {
//            case .success(let res):
//                if let data = res.image.ly.compressTo() {
//                    let shareObj = UMShareWebpageObject.shareObject(withTitle: shareTitle, descr: shareDesc, thumImage: data)
//                    shareObj?.webpageUrl = shareUrl
//                    self.p_share2platform(type: platform, shareObj: shareObj)
//                }
//            case .failure:
//                break
//            }
//        }
//    }
//
//    private func p_share2platform(type: UMSocialPlatformType?, shareObj: UMShareWebpageObject?) {
//        /// 直接分享到指定的 三方平台
//        if let platform = type {
//            RRShareManager.shareWebPage2Platform(platform, shareObj: shareObj) { [weak self](error) in
//                LYToast.show(tips: error?.description)
//                self?.p_setShareResult(str: error?.description)
//            }
//        }
//        /// 调起分享面板
//        else {
//            RRShareView.show(content: shareObj) { [weak self](error) in
//                LYToast.show(tips: error?.description)
//                self?.p_setShareResult(str: error?.description)
//            }
//        }
//    }
//
//    private func p_getSharePlatform(byType type: String) -> UMSocialPlatformType? {
//        switch type {
//        case "wechat":
//            return .wechatSession
//        case "wechatTimeline":
//            return .wechatTimeLine
//        case "qq":
//            return .QQ
//        case "qqZone":
//            return .qzone
//        case "weibo":
//            return .sina
//        default:
//            return nil
//        }
//    }
//
//    private func p_openProductDetail(data: [String: String]) {
//        guard
//            let pid = data["id"],
//            let productType = data["productType"]
////            let title = data["title"]
//            else {
//            return
//        }
//        let type = RRProductCategory.getURCategoryType(productType)
//        guard type != .none else {
//            return
//        }
//        UniversalRouterType.detail((type, pid, "", "")).action()
//    }
//
//    private func p_openTagListView(data: [String: String]) {
//        guard
//            let tag = data["tag"],
//            let tagType = data["tagType"],
//            let searchType = RRSearch2Type.getTagListSearchType(byString: tagType)
//            else {
//            return
//        }
//        UniversalRouterType.tagList(searchType, tag).action()
//    }
//
//    private func p_h5LoginSuccess(data: [String: String]) {
//        guard
//            let username = data["username"],
//            let password = data["password"],
//            let type = data["type"]
//            else {
//            return
//        }
//        var param = ["data[user_name]": username,
//                     "data[password]": password,
//                     "data[act]": "login",
//                     "data[timestamp]": Date.ly.postStamp,
//                     "data[secret_key]": "no"]
//        var signParam = ["user_name": username,
//                         "password": password,
//                         "act": "login",
//                         "timestamp": Date.ly.postStamp,
//                         "secret_key": "no"]
//        if type == "byCode" {
//            param = ["data[user_name]": username,
//                     "data[cord]": password,
//                     "data[act]": "login_corde",
//                     "data[timestamp]": Date.ly.postStamp,
//                     "data[secret_key]": "no"]
//            signParam = ["user_name": username,
//                         "cord": password,
//                         "act": "login_corde",
//                         "timestamp": Date.ly.postStamp,
//                         "secret_key": "no"]
//        }
//        param["signature"] = signParam.ly.signStr()
//
//        userNet.request(.signIn, param: param, success: { (response) in
//            RRLocalMng.shared.saveUserinfo(response.dictionaryObject, { (_) in
//            })
//        }) { (error) in
//
//        }
//    }
//
//    private func p_checkGlobalJSParam(_ d: Any?) {
//        guard
//            let data = d as? [String: String]
//            else {
//            return
//        }
//        /// 跳转后 关闭H5页面
//        if let leaveAndCloseWebView = data["leaveAndCloseWebView"],
//           leaveAndCloseWebView == "1" {
//            kDelay(0.3) { [weak self]() in
//                guard let `self` = self else {
//                    return
//                }
//                if let navVC = self.navigationController {
//                    let vcs = navVC.viewControllers
//                    if vcs.count > 2,
//                       vcs[vcs.count - 2] == self {
//                        let newVcs = vcs.filter {
//                            $0 != self
//                        }
//                        navVC.viewControllers = newVcs
//                    }
//                }
//            }
//        }
//        ///
//    }
//}
//
//
//
//
//
//
//
//
//
